home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2001 May / may_2001.iso / intercd / root / Multimedia / ^DivX_Article / virtualdub / VirtualDub-source-1_4d / caplog.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-03-20  |  1.8 KB  |  70 lines

  1. //    VirtualDub - Video processing and capture application
  2. //    Copyright (C) 1998-2001 Avery Lee
  3. //
  4. //    This program is free software; you can redistribute it and/or modify
  5. //    it under the terms of the GNU General Public License as published by
  6. //    the Free Software Foundation; either version 2 of the License, or
  7. //    (at your option) any later version.
  8. //
  9. //    This program is distributed in the hope that it will be useful,
  10. //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. //    GNU General Public License for more details.
  13. //
  14. //    You should have received a copy of the GNU General Public License
  15. //    along with this program; if not, write to the Free Software
  16. //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18. #ifndef f_CAPLOG_H
  19. #define f_CAPLOG_H
  20.  
  21. #include <windows.h>
  22.  
  23. #include "List.h"
  24.  
  25. struct CapEvent {
  26.     enum { VIDEO=0, AUDIO } type;
  27.     DWORD dwTimeStampReceived;
  28.     DWORD dwBytes;
  29.  
  30.     union {
  31.         struct {
  32.             DWORD dwTimeStampRecorded;
  33.         } video;
  34.  
  35.         struct {
  36.             LONG lVideoDelta;
  37.         } audio;
  38.     };
  39. };
  40.  
  41. class CapEventBlock : public ListNode2<CapEventBlock> {
  42. public:
  43.     CapEvent ev[256];
  44. };
  45.  
  46. class CaptureLog {
  47. public:
  48.     CaptureLog();
  49.     ~CaptureLog();
  50.  
  51.     bool LogVideo(DWORD dwTimeStampReceived, DWORD dwBytes, DWORD dwTimeStampRecorded);
  52.     bool LogAudio(DWORD dwTimeStampReceived, DWORD dwBytes, LONG lVideoDelta);
  53.     void Display(HWND hwndParent);
  54.     void Dispose();
  55.  
  56. private:
  57.     List2<CapEventBlock> listBlocks;
  58.     CapEventBlock *pceb;
  59.     int nEvents;
  60.     int nEventsBlock;
  61.  
  62.     void GetDispInfo(NMLVDISPINFO *nldi);
  63.     CapEvent *GetNewRequest();
  64.  
  65.     BOOL DlgProc2(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
  66.     static BOOL CALLBACK DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
  67. };
  68.  
  69. #endif
  70.